Prepare the 0.1.0 release - #39
Merged
Merged
Conversation
Release prep for the first multi-package release, and the first since 0.0.9 (February 2025). * chore(deps): bump Microsoft.Azure.Cosmos to 3.62.1 Dependabot opened this as #36, but that branch predates #37 and #38 and its unit-test failure came from the staleness, not the SDK. Applied on current develop instead: unit 549/549 and integration 72/72 on both frameworks. * docs(packaging): a README for every package Only ActionCache set PackageReadmeFile, so the four packages this release introduces would each have shown an empty readme tab on nuget.org — on the very release that introduces them. Each backend keeps its own README.md beside its csproj, packed from Directory.Build.props so a future backend gets a landing page by adding the file. ActionCache is the exception and still packs the repository root README, declared in its own csproj. * docs: add CHANGELOG.md Everything relative to 0.0.9, breaking changes first. Two of those are only discoverable by upgrading and hitting them: net9.0 is no longer targeted, and entries written by 0.0.9 are unreadable because both the key format and the stored payload changed — a cold cache on first deploy, not an error. The upgrade itself needs no code change; the Use...Cache extensions still live in ActionCache.Common.Extensions, so it is only adding the backend package. PackageReleaseNotes points at the changelog rather than restating it: notes are baked into the nuspec at pack time and would freeze at the version they shipped with. Claude-Session: https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz
…om 0.0.9 Audited every page against the current public API ahead of the release. The content was already accurate — attribute properties, builder methods, options defaults, metric and activity names all match the code, and #31 and #37 both updated the site when they landed. Two gaps: * The configuration reference listed the attribute's properties but not ActionCacheEndpointOptions, the Minimal API equivalent added in #31. The page is meant to be the one place every option appears, and it was missing the newest public type. Adds the table plus the two things the type's shape raises: why the expirations are TimeSpan? where the attribute takes long, and that the delegate runs once at registration rather than per request. * Nothing told a 0.0.9 user how to move. They are the ones most likely to land on the installation page after the release, and the three things that will surprise them are all silent: net9.0 is gone, entries written by 0.0.9 are unreadable so hit rate drops on first deploy, and responses now vary by authenticated user. Adds an "Upgrading from 0.0.9" section stating those and the one action needed -- install the backend package, change no code -- with the changelog linked for the full list. Site builds on Hugo 0.165.0 and all 1445 internal links resolve. Claude-Session: https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release prep for the first multi-package release, and the first since
0.0.9(February 2025). No library behavior changes — a dependency bump, package readmes, and a changelog.Cosmos SDK 3.46.1 → 3.62.1
Dependabot opened this as #36, whose Unit Tests check is red. That branch was cut before #37 and #38 landed, and the failure comes from the staleness rather than from the SDK: applied to current
develop, the same bump is green on unit and integration across both frameworks. #36 can be closed in favour of this.A README for every package
Only
ActionCachesetPackageReadmeFile. The four packages this release introduces would each have rendered an empty readme tab on nuget.org — on the release that introduces them.Each backend now keeps a
README.mdbeside its csproj — install line, registration snippet, the backend-specific operational notes (Redis keyspace notifications, the SQL Server cache table, Cosmos lazy provisioning), and whether it can backUseDistributedSingleFlight().ActionCache.Abstractionsleads with "most applications do not need this package".They are packed from
Directory.Build.props, conditioned on the file existing, so a future backend gets a landing page by adding the file.ActionCachehas noREADME.mdof its own — it still packs the repository root README from its own csproj — so the condition passes it by.CHANGELOG.md
Everything relative to
0.0.9, breaking changes first, plus an Upgrading from 0.0.9 section. Three are worth calling out here:net9.0is no longer targeted.0.0.9shippednet8.0;net9.0;0.1.0shipsnet8.0;net10.0.0.0.9are unreadable. Both the key format (now hashed) and the stored payload (now a rendered response envelope) changed. A cold cache on first deploy, not an error — but only discoverable by upgrading and watching hit rates.Use…Cacheextensions still live inActionCache.Common.Extensions, so migration is adding the backend package and nothing else.PackageReleaseNoteslinks to the changelog rather than restating it — notes are baked into the nuspec at pack time and would otherwise freeze at the version they shipped with.Verification
Against this branch:
dotnet build ActionCache.slnxnet8.0andnet10.0net8.0andnet10.0, against live Redis/SQL Server/Cosmosdotnet pack -p:Version=0.1.0[0.1.0]verify-package-dependencies.shActionCache.AbstractionsOne flake to flag rather than bury: on the first integration run after the bump, a timing-sensitive expiration test failed once on
net8.0(that run took 4m01s against a usual 3m09s, so it was under load). It passed on the three subsequent full runs on both frameworks. This is the same pre-existing flake noted in #17, not something the SDK bump introduced.Follow-up
The remaining four Dependabot PRs (#32–#35) are test- and benchmark-only and are deliberately left for after the release. #34 in particular is FluentAssertions 6 → 8, a major bump likely to need test edits.
https://claude.ai/code/session_01VUPTqPh5w79mfa18fLnMLz